<?php
/**
 * 物件一覧（店舗）クラス<br />
 *
 * @package    apamanshop
 * @author     SS永田
 * @copyright  コピーライト(要確認)
 */
class Rstobi_Model_RstobiShop extends Rstobi_Model_Base
{
	/**
	* 物件データ取得
	*/
	public function getBukenDataForShop($params, $getMode, $shopCountFrom=0 , $shopCountTo=0)
	{
		// インスタンス生成
		$this->_model_rstobilist  = new Rstobi_Model_RstobiList();  //物件一覧クラス
		
		// フリーワード検索は特別処理
		if($params['SrhKbn'] == Apm_Config_Search::SRHKBN_FREEWORD)
		{
			// インスタンスの生成
			$this->_model_freewordsearch = new Rstobi_Model_FreewordSearch();
			
			if($getMode == Apm_Config_Search::GETBUKENTYPE_LIST)
			{
				$sql = $this->_model_freewordsearch->getSelectFreeForShop($params, $db_params ,$shopCountFrom, $shopCountTo);
				
				// 2010/12/24 ランダム表示対応
				$sql .= ' order by RANDOM';
				
			}
			else if($getMode == Apm_Config_Search::GETBUKENTYPE_COUNT)
			{
				$sql = $this->_model_freewordsearch->getSelectCountFreeForShop($params, $db_params);
			}
		}
		else
		{
			// 店舗データ取得用SELECT句
			if($getMode == Apm_Config_Search::GETBUKENTYPE_LIST)
			{
				$sql = $this->getSelectPhraseForShop('');
			}
			// 店舗件数取得用SELECT句
			else if($getMode == Apm_Config_Search::GETBUKENTYPE_COUNT)
			{
				$sql = $this->getSelectCountForShop('');
			}
		
			//FROM句、WHERE句取得
			$sql .= $this->_model_rstobilist->generateSql($params, $db_params, $getMode);
		
			// 情報誌以外は、基本条件、こだわり条件で絞り込む
			if($params['SrhKbn'] <> Apm_Config_Search::SRHKBN_JYOHOSHINO)
			{
				// 基本条件での絞込み
				$sql .= $this->_model_rstobi_common->getKihonWhere($params, $db_params);
				
				// こだわり条件での絞込み
				$sql .= $this->_model_rstobi_common->getKodawariWhere($params, $db_params);
				
				// 店舗データ取得用
				if($getMode == Apm_Config_Search::GETBUKENTYPE_LIST)
				{
					$sql .= $this->getGroupByCountForShop($params['SrhKbn'], $getMode);
					$sql .= $this->getFromForShop();
					$sql .= $this->getWhereForShop();
					$sql .= $this->_model_rstobi_common->getOrderByForShop($params);
					$sql .= $this->getBetween($db_params, $shopCountFrom, $shopCountTo);
					
					// 2010/12/24 ランダム表示対応
					$sql .= ' order by RANDOM';
					
				}
				// 店舗件数取得用
				else if($getMode == Apm_Config_Search::GETBUKENTYPE_COUNT)
				{
					// GroupBy句を取得
					$sql .= $this->getGroupByCountForShop($params['SrhKbn'], $getMode);
				}
			}
		}
		
		// SQLを実行し、結果を返却
		return $this->dbGetList($sql, $db_params);
	}
}
?>